Extracting Computer Algebra Programs from Statements
نویسندگان
چکیده
In this paper, an approach to synthesize correct programs from specifications is presented. The idea is to extract code from definitions appearing in statements which have been mechanically proved with the help of a proof assistant. This approach has been found when proving the correctness of certain Computer Algebra programs (for Algebraic Topology) by using the Isabelle proof assistant. To ease the understanding of our techniques, they are illustrated by means of examples in elementary arithmetic.
منابع مشابه
Program Verification based on Kleene Algebra in Isabelle/HOL
Schematic Kleene algebra with tests (SKAT) supports the equational verification of flowchart scheme equivalence and captures simple while programs with assignment statements. We formalise SKAT in Isabelle/HOL, using the quotient type package to reason equationally in this algebra. We apply this formalisation to a complex flowchart transformation proof from the literature. We extend SKAT with as...
متن کاملProgram Slicing for Refactoring: Static Slicer using Dynamic Analyser
Refactoring is the process of changing the code of the software such that its internal design is improved without altering its observable behavior. Method Extraction is the process of separating out a subset of method’s statements into another method and replacing their occurrence in the original method with a call to this new method. Method extraction is a classical problem to improve the modu...
متن کاملAutomatic Proof Generation in Kleene Algebra with Tests
Kleene algebra (KA) is the algebra of regular events. Familiar examples of Kleene algebras include regular sets, relational algebras, and trace algebras. A Kleene algebra with tests (KAT) is a Kleene algebra with an embedded Boolean subalgebra. The addition of tests allows one to encode while programs as KAT terms, thus the equational theory of KAT can express (propositional) program equivalenc...
متن کاملExtracting Reusable Funtions by Flow Graph-Based Program Slicing
An alternative approach to developing reusable components from scratch is to recover them from existing systems. In this paper, we apply program slicing, a program decomposition method, to the problem of extracting reusable functions from illstructured programs. As with conventional slicing first described by Weiser, a slice is obtained by iteratively solving data flow equations based on a prog...
متن کاملThe Formal Termination Problem for Programs with Finite ALGOL 68-Modes
In f 1 l] the importance of the formal termination problem for a high level programming language has been pointed out. If this problem is algorithmically solvable, then the translator is at least principally able to check whether certain properties closely related to termination like macro property of programs or nonrecursivity or block behaviour of procedures are fulfilled and then to produce ...
متن کامل